var runtime.sched
457 uses
runtime (current package)
cgocall.go#L441: hz := sched.profilehz
debug.go#L75: lock(&sched.lock)
debug.go#L78: unlock(&sched.lock)
debug.go#L83: sched.customGOMAXPROCS = true
debug.go#L84: unlock(&sched.lock)
debug.go#L124: lock(&sched.lock)
debug.go#L126: custom := sched.customGOMAXPROCS
debug.go#L127: unlock(&sched.lock)
debug.go#L142: lock(&sched.lock)
debug.go#L143: sched.customGOMAXPROCS = false
debug.go#L144: unlock(&sched.lock)
debug.go#L168: total := sched.totalMutexWaitTime.Load()
debug.go#L170: total += sched.totalRuntimeLockWaitTime.Load()
debugcall.go#L245: lock(&sched.lock)
debugcall.go#L247: unlock(&sched.lock)
lock_spinbit.go#L147: case &sched.lock:
mcheckmark.go#L134: sched.gcwaiting.Store(false)
mcheckmark.go#L143: sched.gcwaiting.Store(true)
metrics.go#L351: sched.stwTotalTimeGC.write(out)
metrics.go#L512: sched.timeToRun.write(out)
metrics.go#L517: sched.stwStoppingTimeGC.write(out)
metrics.go#L522: sched.stwStoppingTimeOther.write(out)
metrics.go#L527: sched.stwTotalTimeGC.write(out)
metrics.go#L532: sched.stwTotalTimeOther.write(out)
metrics.go#L806: lock(&sched.lock)
metrics.go#L813: a.gCreated += sched.goroutinesCreated.Load()
metrics.go#L851: a.gRunnable += uint64(sched.runq.size)
metrics.go#L854: nGsyscallNoP := sched.nGsyscallNoP.Load()
metrics.go#L871: unlock(&sched.lock)
mgc.go#L1465: sched.idleTime.Store(0)
mgc.go#L1886: lock(&sched.lock)
mgc.go#L1888: unlock(&sched.lock)
mgc.go#L2190: lock(&sched.sudoglock)
mgc.go#L2192: for sg = sched.sudogcache; sg != nil; sg = sgnext {
mgc.go#L2196: sched.sudogcache = nil
mgc.go#L2197: unlock(&sched.sudoglock)
mgc.go#L2201: lock(&sched.deferlock)
mgc.go#L2205: for d = sched.deferpool; d != nil; d = dlink {
mgc.go#L2209: sched.deferpool = nil
mgc.go#L2210: unlock(&sched.deferlock)
mgclimit.go#L213: sched.idleTime.Add(duration)
mgclimit.go#L472: sched.idleTime.Add(duration)
mgcmark.go#L361: lock(&sched.gFree.lock)
mgcmark.go#L362: list := sched.gFree.stack
mgcmark.go#L363: sched.gFree.stack = gList{}
mgcmark.go#L364: unlock(&sched.gFree.lock)
mgcmark.go#L385: lock(&sched.gFree.lock)
mgcmark.go#L386: sched.gFree.noStack.pushAll(q)
mgcmark.go#L387: unlock(&sched.gFree.lock)
mgcmark.go#L1284: for !(gp.preempt && (preemptible || sched.gcwaiting.Load() || pp.runSafePointFn != 0)) {
mgcmark.go#L1314: for !(gp.preempt && (preemptible || sched.gcwaiting.Load() || pp.runSafePointFn != 0)) {
mgcpacer.go#L714: if sched.npidle.Load() != 0 && sched.nmspinning.Load() == 0 {
mstats.go#L463: lock(&sched.sysmonlock)
mstats.go#L503: unlock(&sched.sysmonlock)
mstats.go#L973: s.TotalTime = sched.totaltime + (now-sched.procresizetime)*int64(gomaxprocs)
mstats.go#L974: s.IdleTime += sched.idleTime.Load()
panic.go#L582: if len(pp.deferpool) == 0 && sched.deferpool != nil {
panic.go#L583: lock(&sched.deferlock)
panic.go#L584: for len(pp.deferpool) < cap(pp.deferpool)/2 && sched.deferpool != nil {
panic.go#L585: d := sched.deferpool
panic.go#L586: sched.deferpool = d.link
panic.go#L590: unlock(&sched.deferlock)
panic.go#L641: lock(&sched.deferlock)
panic.go#L642: last.link = sched.deferpool
panic.go#L643: sched.deferpool = first
panic.go#L644: unlock(&sched.deferlock)
proc.go#L423: if !gp.preempt && sched.npidle.Load() > 0 {
proc.go#L512: lock(&sched.sudoglock)
proc.go#L514: for len(pp.sudogcache) < cap(pp.sudogcache)/2 && sched.sudogcache != nil {
proc.go#L515: s := sched.sudogcache
proc.go#L516: sched.sudogcache = s.next
proc.go#L520: unlock(&sched.sudoglock)
proc.go#L578: lock(&sched.sudoglock)
proc.go#L579: last.next = sched.sudogcache
proc.go#L580: sched.sudogcache = first
proc.go#L581: unlock(&sched.sudoglock)
proc.go#L845: lockInit(&sched.lock, lockRankSched)
proc.go#L846: lockInit(&sched.sysmonlock, lockRankSysmon)
proc.go#L847: lockInit(&sched.deferlock, lockRankDefer)
proc.go#L848: lockInit(&sched.sudoglock, lockRankSudog)
proc.go#L867: sched.midle.init(unsafe.Offsetof(m{}.idleNode))
proc.go#L876: sched.maxmcount = 10000
proc.go#L932: lock(&sched.lock)
proc.go#L933: sched.lastpoll.Store(nanotime())
proc.go#L937: sched.customGOMAXPROCS = true
proc.go#L952: unlock(&sched.lock)
proc.go#L977: assertLockHeld(&sched.lock)
proc.go#L988: if count > sched.maxmcount {
proc.go#L989: print("runtime: program exceeds ", sched.maxmcount, "-thread limit\n")
proc.go#L999: assertLockHeld(&sched.lock)
proc.go#L1001: if sched.mnext+1 < sched.mnext {
proc.go#L1004: id := sched.mnext
proc.go#L1005: sched.mnext++
proc.go#L1019: lock(&sched.lock)
proc.go#L1043: unlock(&sched.lock)
proc.go#L1088: sched.nmspinning.Add(1)
proc.go#L1089: sched.needspinning.Store(0)
proc.go#L1202: sched.stopwait = freezeStopWait
proc.go#L1203: sched.gcwaiting.Store(true)
proc.go#L1371: sched.totalMutexWaitTime.Add((now - gp.trackingStamp) * gTrackingPeriod)
proc.go#L1393: sched.timeToRun.record(gp.runnableTime)
proc.go#L1669: lock(&sched.lock)
proc.go#L1671: sched.stopwait = gomaxprocs
proc.go#L1672: sched.gcwaiting.Store(true)
proc.go#L1678: sched.stopwait--
proc.go#L1697: sched.stopwait--
proc.go#L1699: wait := sched.stopwait > 0
proc.go#L1700: unlock(&sched.lock)
proc.go#L1706: if notetsleep(&sched.stopnote, 100*1000) {
proc.go#L1707: noteclear(&sched.stopnote)
proc.go#L1717: sched.stwStoppingTimeGC.record(startTime)
proc.go#L1719: sched.stwStoppingTimeOther.record(startTime)
proc.go#L1728: if sched.stopwait != 0 {
proc.go#L1782: lock(&sched.lock)
proc.go#L1790: sched.gcwaiting.Store(false)
proc.go#L1791: if sched.sysmonwait.Load() {
proc.go#L1792: sched.sysmonwait.Store(false)
proc.go#L1793: notewakeup(&sched.sysmonnote)
proc.go#L1795: unlock(&sched.lock)
proc.go#L1822: sched.stwTotalTimeGC.record(totalTime)
proc.go#L1824: sched.stwTotalTimeOther.record(totalTime)
proc.go#L2015: lock(&sched.lock)
proc.go#L2016: sched.nmfreed++
proc.go#L2018: unlock(&sched.lock)
proc.go#L2048: lock(&sched.lock)
proc.go#L2072: mp.freelink = sched.freem
proc.go#L2073: sched.freem = mp
proc.go#L2074: unlock(&sched.lock)
proc.go#L2077: sched.totalRuntimeLockWaitTime.Add(mp.mLockProfile.waitTime.Load())
proc.go#L2086: lock(&sched.lock)
proc.go#L2087: sched.nmfreed++
proc.go#L2089: unlock(&sched.lock)
proc.go#L2162: lock(&sched.lock)
proc.go#L2163: if sched.safePointWait != 0 {
proc.go#L2166: sched.safePointWait = gomaxprocs - 1
proc.go#L2167: sched.safePointFn = fn
proc.go#L2183: for p := sched.pidle.ptr(); p != nil; p = p.link.ptr() {
proc.go#L2186: sched.safePointWait--
proc.go#L2190: wait := sched.safePointWait > 0
proc.go#L2191: unlock(&sched.lock)
proc.go#L2217: if notetsleep(&sched.safePointNote, 100*1000) {
proc.go#L2218: noteclear(&sched.safePointNote)
proc.go#L2224: if sched.safePointWait != 0 {
proc.go#L2233: lock(&sched.lock)
proc.go#L2234: sched.safePointFn = nil
proc.go#L2235: unlock(&sched.lock)
proc.go#L2258: sched.safePointFn(p)
proc.go#L2259: lock(&sched.lock)
proc.go#L2260: sched.safePointWait--
proc.go#L2261: if sched.safePointWait == 0 {
proc.go#L2262: notewakeup(&sched.safePointNote)
proc.go#L2264: unlock(&sched.lock)
proc.go#L2302: if sched.freem != nil {
proc.go#L2303: lock(&sched.lock)
proc.go#L2305: for freem := sched.freem; freem != nil; {
proc.go#L2338: sched.freem = newList
proc.go#L2339: unlock(&sched.lock)
proc.go#L2475: sched.ngsys.Add(-1)
proc.go#L2551: gp.goid = sched.goidgen.Add(1)
proc.go#L2562: sched.ngsys.Add(1)
proc.go#L2619: sched.ngsys.Add(1)
proc.go#L2659: lock(&sched.lock)
proc.go#L2661: unlock(&sched.lock)
proc.go#L2979: lock(&sched.lock)
proc.go#L2980: sched.nmsys++
proc.go#L2982: unlock(&sched.lock)
proc.go#L3020: lock(&sched.lock)
proc.go#L3022: unlock(&sched.lock)
proc.go#L3069: lock(&sched.lock)
proc.go#L3081: unlock(&sched.lock)
proc.go#L3104: unlock(&sched.lock)
proc.go#L3114: lock(&sched.lock)
proc.go#L3122: unlock(&sched.lock)
proc.go#L3151: if !runqempty(pp) || !sched.runq.empty() {
proc.go#L3167: if sched.nmspinning.Load()+sched.npidle.Load() == 0 && sched.nmspinning.CompareAndSwap(0, 1) { // TODO: fast atomic
proc.go#L3168: sched.needspinning.Store(0)
proc.go#L3172: lock(&sched.lock)
proc.go#L3173: if sched.gcwaiting.Load() {
proc.go#L3176: sched.stopwait--
proc.go#L3177: if sched.stopwait == 0 {
proc.go#L3178: notewakeup(&sched.stopnote)
proc.go#L3180: unlock(&sched.lock)
proc.go#L3184: sched.safePointFn(pp)
proc.go#L3185: sched.safePointWait--
proc.go#L3186: if sched.safePointWait == 0 {
proc.go#L3187: notewakeup(&sched.safePointNote)
proc.go#L3190: if !sched.runq.empty() {
proc.go#L3191: unlock(&sched.lock)
proc.go#L3197: if sched.npidle.Load() == gomaxprocs-1 && sched.lastpoll.Load() != 0 {
proc.go#L3198: unlock(&sched.lock)
proc.go#L3207: unlock(&sched.lock)
proc.go#L3230: if sched.nmspinning.Load() != 0 || !sched.nmspinning.CompareAndSwap(0, 1) {
proc.go#L3242: lock(&sched.lock)
proc.go#L3245: if sched.nmspinning.Add(-1) < 0 {
proc.go#L3248: unlock(&sched.lock)
proc.go#L3256: unlock(&sched.lock)
proc.go#L3314: if !sched.gcwaiting.Load() {
proc.go#L3321: if sched.nmspinning.Add(-1) < 0 {
proc.go#L3326: lock(&sched.lock)
proc.go#L3329: sched.stopwait--
proc.go#L3330: if sched.stopwait == 0 {
proc.go#L3331: notewakeup(&sched.stopnote)
proc.go#L3333: unlock(&sched.lock)
proc.go#L3386: hz := sched.profilehz
proc.go#L3418: if sched.gcwaiting.Load() {
proc.go#L3458: if pp.schedtick%61 == 0 && !sched.runq.empty() {
proc.go#L3459: lock(&sched.lock)
proc.go#L3461: unlock(&sched.lock)
proc.go#L3489: if !sched.runq.empty() {
proc.go#L3490: lock(&sched.lock)
proc.go#L3492: unlock(&sched.lock)
proc.go#L3510: if netpollinited() && netpollAnyWaiters() && sched.lastpoll.Load() != 0 && sched.pollingNet.Swap(1) == 0 {
proc.go#L3512: sched.pollingNet.Store(0)
proc.go#L3532: if mp.spinning || 2*sched.nmspinning.Load() < gomaxprocs-sched.npidle.Load() {
proc.go#L3609: lock(&sched.lock)
proc.go#L3610: if sched.gcwaiting.Load() || pp.runSafePointFn != 0 {
proc.go#L3611: unlock(&sched.lock)
proc.go#L3614: if !sched.runq.empty() {
proc.go#L3616: unlock(&sched.lock)
proc.go#L3625: if !mp.spinning && sched.needspinning.Load() == 1 {
proc.go#L3628: unlock(&sched.lock)
proc.go#L3635: unlock(&sched.lock)
proc.go#L3676: if sched.nmspinning.Add(-1) < 0 {
proc.go#L3691: lock(&sched.lock)
proc.go#L3692: if !sched.runq.empty() {
proc.go#L3696: unlock(&sched.lock)
proc.go#L3708: unlock(&sched.lock)
proc.go#L3747: if netpollinited() && (netpollAnyWaiters() || pollUntil != 0) && sched.lastpoll.Swap(0) != 0 {
proc.go#L3748: sched.pollUntil.Store(pollUntil)
proc.go#L3772: sched.pollUntil.Store(0)
proc.go#L3773: sched.lastpoll.Store(now)
proc.go#L3780: lock(&sched.lock)
proc.go#L3782: unlock(&sched.lock)
proc.go#L3806: pollerPollUntil := sched.pollUntil.Load()
proc.go#L3820: if !sched.runq.empty() {
proc.go#L3827: if netpollinited() && netpollAnyWaiters() && sched.lastpoll.Load() != 0 {
proc.go#L3853: if sched.gcwaiting.Load() {
proc.go#L3920: lock(&sched.lock)
proc.go#L3924: unlock(&sched.lock)
proc.go#L3927: unlock(&sched.lock)
proc.go#L3987: lock(&sched.lock)
proc.go#L3990: unlock(&sched.lock)
proc.go#L3997: unlock(&sched.lock)
proc.go#L4004: unlock(&sched.lock)
proc.go#L4009: unlock(&sched.lock)
proc.go#L4018: if sched.lastpoll.Load() == 0 {
proc.go#L4023: pollerPollUntil := sched.pollUntil.Load()
proc.go#L4042: nmspinning := sched.nmspinning.Add(-1)
proc.go#L4087: lock(&sched.lock)
proc.go#L4091: unlock(&sched.lock)
proc.go#L4097: unlock(&sched.lock)
proc.go#L4105: lock(&sched.lock)
proc.go#L4107: unlock(&sched.lock)
proc.go#L4113: npidle := sched.npidle.Load()
proc.go#L4120: lock(&sched.lock)
proc.go#L4122: unlock(&sched.lock)
proc.go#L4127: lock(&sched.lock)
proc.go#L4129: unlock(&sched.lock)
proc.go#L4217: if sched.disable.user && !schedEnabled(gp) {
proc.go#L4221: lock(&sched.lock)
proc.go#L4225: unlock(&sched.lock)
proc.go#L4227: sched.disable.runnable.pushBack(gp)
proc.go#L4228: unlock(&sched.lock)
proc.go#L4346: if preempted && sched.gcwaiting.Load() {
proc.go#L4351: lock(&sched.lock)
proc.go#L4353: unlock(&sched.lock)
proc.go#L4525: sched.ngsys.Add(-1)
proc.go#L4721: if sched.gcwaiting.Load() {
proc.go#L4749: if sched.sysmonwait.Load() {
proc.go#L4786: lock(&sched.lock)
proc.go#L4787: if sched.sysmonwait.Load() {
proc.go#L4788: sched.sysmonwait.Store(false)
proc.go#L4789: notewakeup(&sched.sysmonnote)
proc.go#L4791: unlock(&sched.lock)
proc.go#L4797: lock(&sched.lock)
proc.go#L4798: if sched.stopwait > 0 {
proc.go#L4811: if sched.stopwait--; sched.stopwait == 0 {
proc.go#L4812: notewakeup(&sched.stopnote)
proc.go#L4815: unlock(&sched.lock)
proc.go#L4931: if sched.stopwait == freezeStopWait {
proc.go#L5043: if sched.disable.user && !schedEnabled(gp) {
proc.go#L5084: if sched.pidle != 0 {
proc.go#L5085: lock(&sched.lock)
proc.go#L5087: if pp != nil && sched.sysmonwait.Load() {
proc.go#L5088: sched.sysmonwait.Store(false)
proc.go#L5089: notewakeup(&sched.sysmonnote)
proc.go#L5091: unlock(&sched.lock)
proc.go#L5121: lock(&sched.lock)
proc.go#L5136: } else if sched.sysmonwait.Load() {
proc.go#L5137: sched.sysmonwait.Store(false)
proc.go#L5138: notewakeup(&sched.sysmonnote)
proc.go#L5140: unlock(&sched.lock)
proc.go#L5173: sched.nGsyscallNoP.Add(1)
proc.go#L5188: sched.nGsyscallNoP.Add(-1)
proc.go#L5398: sched.ngsys.Add(1)
proc.go#L5433: pp.goidcache = sched.goidgen.Add(_GoidCacheBatch)
proc.go#L5549: lock(&sched.gFree.lock)
proc.go#L5550: sched.gFree.noStack.pushAll(noStackQ)
proc.go#L5551: sched.gFree.stack.pushAll(stackQ)
proc.go#L5552: unlock(&sched.gFree.lock)
proc.go#L5560: if pp.gFree.empty() && (!sched.gFree.stack.empty() || !sched.gFree.noStack.empty()) {
proc.go#L5561: lock(&sched.gFree.lock)
proc.go#L5565: gp := sched.gFree.stack.pop()
proc.go#L5567: gp = sched.gFree.noStack.pop()
proc.go#L5574: unlock(&sched.gFree.lock)
proc.go#L5633: lock(&sched.gFree.lock)
proc.go#L5634: sched.gFree.noStack.pushAll(noStackQ)
proc.go#L5635: sched.gFree.stack.pushAll(stackQ)
proc.go#L5636: unlock(&sched.gFree.lock)
proc.go#L5751: n := int32(atomic.Loaduintptr(&allglen)) - sched.gFree.stack.size - sched.gFree.noStack.size
proc.go#L5753: n -= sched.ngsys.Load()
proc.go#L5776: return int32(sched.mnext - sched.nmfreed)
proc.go#L5944: lock(&sched.lock)
proc.go#L5945: sched.profilehz = hz
proc.go#L5946: unlock(&sched.lock)
proc.go#L5999: assertLockHeld(&sched.lock)
proc.go#L6067: sched.goroutinesCreated.Add(int64(pp.goroutinesCreated))
proc.go#L6082: assertLockHeld(&sched.lock)
proc.go#L6097: if sched.procresizetime != 0 {
proc.go#L6098: sched.totaltime += int64(old) * (now - sched.procresizetime)
proc.go#L6100: sched.procresizetime = now
proc.go#L6407: lock(&sched.lock)
proc.go#L6408: sched.nmidlelocked += v
proc.go#L6412: unlock(&sched.lock)
proc.go#L6419: assertLockHeld(&sched.lock)
proc.go#L6447: run := mcount() - sched.nmidle - sched.nmidlelocked - sched.nmsys
proc.go#L6452: print("runtime: checkdead: nmidle=", sched.nmidle, " nmidlelocked=", sched.nmidlelocked, " mcount=", mcount(), " nmsys=", sched.nmsys, "\n")
proc.go#L6453: unlock(&sched.lock)
proc.go#L6471: unlock(&sched.lock)
proc.go#L6476: unlock(&sched.lock) // unlock so that GODEBUG=scheddetail=1 doesn't hang
proc.go#L6490: unlock(&sched.lock)
proc.go#L6497: unlock(&sched.lock)
proc.go#L6503: sched.nmspinning.Add(1)
proc.go#L6518: unlock(&sched.lock) // unlock so that GODEBUG=scheddetail=1 doesn't hang
proc.go#L6538: lock(&sched.lock)
proc.go#L6539: sched.nmsys++
proc.go#L6541: unlock(&sched.lock)
proc.go#L6575: if debug.schedtrace <= 0 && (sched.gcwaiting.Load() || sched.npidle.Load() == gomaxprocs) {
proc.go#L6576: lock(&sched.lock)
proc.go#L6577: if sched.gcwaiting.Load() || sched.npidle.Load() == gomaxprocs {
proc.go#L6581: sched.sysmonwait.Store(true)
proc.go#L6582: unlock(&sched.lock)
proc.go#L6593: syscallWake = notetsleep(&sched.sysmonnote, sleep)
proc.go#L6597: lock(&sched.lock)
proc.go#L6598: sched.sysmonwait.Store(false)
proc.go#L6599: noteclear(&sched.sysmonnote)
proc.go#L6606: unlock(&sched.lock)
proc.go#L6609: lock(&sched.sysmonlock)
proc.go#L6619: lastpoll := sched.lastpoll.Load()
proc.go#L6621: sched.lastpoll.CompareAndSwap(lastpoll, now)
proc.go#L6666: unlock(&sched.sysmonlock)
proc.go#L6754: if runqempty(pp) && sched.nmspinning.Load()+sched.npidle.Load() > 0 && pd.syscallwhen+10*1000*1000 > now {
proc.go#L6852: assertLockHeld(&sched.lock)
proc.go#L6856: sched.stopwait--
proc.go#L6956: lock(&sched.lock)
proc.go#L6957: print("SCHED ", (now-starttime)/1e6, "ms: gomaxprocs=", gomaxprocs, " idleprocs=", sched.npidle.Load(), " threads=", mcount(), " spinningthreads=", sched.nmspinning.Load(), " needspinning=", sched.needspinning.Load(), " idlethreads=", sched.nmidle, " runqueue=", sched.runq.size)
proc.go#L6959: print(" gcwaiting=", sched.gcwaiting.Load(), " nmidlelocked=", sched.nmidlelocked, " stopwait=", sched.stopwait, " sysmonwait=", sched.sysmonwait.Load(), "\n")
proc.go#L7001: unlock(&sched.lock)
proc.go#L7043: unlock(&sched.lock)
proc.go#L7152: lock(&sched.lock)
proc.go#L7153: custom := sched.customGOMAXPROCS
proc.go#L7154: unlock(&sched.lock)
proc.go#L7165: lock(&sched.lock)
proc.go#L7166: sched.customGOMAXPROCS = false
proc.go#L7167: unlock(&sched.lock)
proc.go#L7178: lock(&sched.lock)
proc.go#L7179: custom := sched.customGOMAXPROCS
proc.go#L7181: unlock(&sched.lock)
proc.go#L7215: lock(&sched.lock)
proc.go#L7216: if sched.disable.user == !enable {
proc.go#L7217: unlock(&sched.lock)
proc.go#L7220: sched.disable.user = !enable
proc.go#L7222: n := sched.disable.runnable.size
proc.go#L7223: globrunqputbatch(&sched.disable.runnable)
proc.go#L7224: unlock(&sched.lock)
proc.go#L7225: for ; n != 0 && sched.npidle.Load() != 0; n-- {
proc.go#L7229: unlock(&sched.lock)
proc.go#L7238: assertLockHeld(&sched.lock)
proc.go#L7240: if sched.disable.user {
proc.go#L7252: assertLockHeld(&sched.lock)
proc.go#L7254: sched.midle.push(unsafe.Pointer(mp))
proc.go#L7255: sched.nmidle++
proc.go#L7265: assertLockHeld(&sched.lock)
proc.go#L7267: mp := (*m)(sched.midle.pop())
proc.go#L7269: sched.nmidle--
proc.go#L7282: assertLockHeld(&sched.lock)
proc.go#L7289: sched.midle.remove(unsafe.Pointer(mp))
proc.go#L7290: sched.nmidle--
proc.go#L7301: assertLockHeld(&sched.lock)
proc.go#L7303: sched.runq.pushBack(gp)
proc.go#L7312: assertLockHeld(&sched.lock)
proc.go#L7314: sched.runq.push(gp)
proc.go#L7324: assertLockHeld(&sched.lock)
proc.go#L7326: sched.runq.pushBackAll(*batch)
proc.go#L7333: assertLockHeld(&sched.lock)
proc.go#L7335: if sched.runq.size == 0 {
proc.go#L7339: return sched.runq.pop()
proc.go#L7345: assertLockHeld(&sched.lock)
proc.go#L7347: if sched.runq.size == 0 {
proc.go#L7351: n = min(n, sched.runq.size, sched.runq.size/gomaxprocs+1)
proc.go#L7353: gp = sched.runq.pop()
proc.go#L7357: gp1 := sched.runq.pop()
proc.go#L7425: assertLockHeld(&sched.lock)
proc.go#L7437: pp.link = sched.pidle
proc.go#L7438: sched.pidle.set(pp)
proc.go#L7439: sched.npidle.Add(1)
proc.go#L7454: assertLockHeld(&sched.lock)
proc.go#L7456: pp := sched.pidle.ptr()
proc.go#L7464: sched.pidle = pp.link
proc.go#L7465: sched.npidle.Add(-1)
proc.go#L7482: assertLockHeld(&sched.lock)
proc.go#L7489: sched.needspinning.Store(1)
proc.go#L7607: lock(&sched.lock)
proc.go#L7609: unlock(&sched.lock)
proc.go#L7912: lock(&sched.lock)
proc.go#L7913: out = int(sched.maxmcount)
proc.go#L7915: sched.maxmcount = 0x7fffffff
proc.go#L7917: sched.maxmcount = int32(in)
proc.go#L7920: unlock(&sched.lock)
proc.go#L7995: if i >= active_spin || numCPUStartup <= 1 || gomaxprocs <= sched.npidle.Load()+sched.nmspinning.Load()+1 {
runtime2.go#L1408: sched schedt
trace.go#L372: lock(&sched.sysmonlock)
trace.go#L445: unlock(&sched.sysmonlock)
trace.go#L657: lock(&sched.lock)
trace.go#L662: for mp := sched.freem; mp != nil; mp = mp.freelink {
trace.go#L666: unlock(&sched.lock)
traceruntime.go#L686: assertLockHeld(&sched.lock)